package cc.rengu.igas.bsps.common.dao;

import cc.rengu.igas.bsps.common.entity.UserInfo;

import java.util.List;

/**
 * 商户服务用户信息表操作接口.
 * Updated by zhangxuran on2020/04/02  新增更新用户信息交易接口
 */
public interface BspsUserInfoMapper {

    /**
     * 根据用户标识查询用户信息
     *
     * @param instId 机构标识
     * @param userId 用户标识
     * @return 签约信息
     * @throws Exception 异常
     */
    UserInfo selectBspsUserInfoByUserId(String instId, String userId) throws Exception;


    /**
     * 根据用户登录账户查询用户信息
     *
     * @param instId      机构标识
     * @param userLoginId 用户登录账户
     * @return 签约信息
     * @throws Exception 异常
     */
    UserInfo selectBspsUserInfoByUserLoginId(String instId, String userLoginId) throws Exception;


    /**
     * 根据用户openId标识查询签约信息
     *
     * @param instId 机构标识
     * @param openId 微信openId
     * @return 签约信息
     * @throws Exception 异常
     */
    UserInfo selectBspsUserInfoByOpenId(String instId, String openId) throws Exception;


    /**
     * 根据用户手机银行标识查询签约信息
     *
     * @param instId       机构标识
     * @param userMobileId 手机银行标识
     * @return 签约信息
     * @throws Exception 异常
     */
    UserInfo selectBspsUserInfoByUserMobileId(String instId, String userMobileId) throws Exception;


    /**
     * 更新用户登录失败信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int updateBspsUserErrorTimeByPrimaryKey(UserInfo userInfo) throws Exception;


    /**
     * 更新用户openId信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int updateBspsOpenIdByPrimaryKey(UserInfo userInfo, String openId) throws Exception;


    /**
     * 根据手机号查询用户列表信息
     *
     * @param instId   机构号
     * @param mobileNo 手机号
     * @return 用户信息
     * @throws Exception 异常
     */
    List<UserInfo> selectBspsUserInfoListByMobileNo(String instId, String mobileNo) throws Exception;


    /**
     * 登记用户信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int insertBspsUserInfo(UserInfo userInfo) throws Exception;


    int updateBspsPasswordByUserLoginId(String instId, String userLoginId, String password, String passwordType) throws Exception;

    /**
     * 更新用户信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int updateBspsUserInfoByPrimaryKey(UserInfo userInfo) throws Exception;

    /**
     * 更新用户账号和密码
     *
     * @param instId      机构
     * @param userLoginId 账户
     * @param password    登录密码
     * @param userId      用户id
     * @return 0-成功，其它-失败
     */
    int updateBspsLoginIdLoginPasswordByUserId(String instId, String userLoginId, String password, String userId) throws Exception;


    /**
     * 更新用户状态信息
     *
     * @param instId 法人行号
     * @param userId 用户id
     * @return 0-成功，其它-失败
     */
    int updateUserStatusByPrimaryKey(String instId, String userId) throws Exception;

}



